1. Field of the Invention
The present invention relates to managing power consumption of peripheral devices during and following enumeration. More particularly, this invention relates to controlling device operation parameters to meet power consumption limits.
2. Description of the Related Art
When a Universal Serial Bus (USB) device is connected to the USB of a host computer, the host accesses the device to determine what type of device it is and how much power it needs to operate. This process is referred to as “device enumeration.” The USB specification limits the amount of current that a USB bus-powered device may consume during enumeration to 100 mA. The device may request additional current, however, up to a total of 500 mA. After the device enumeration process is complete, if the host system is able to meet the additional power request, it will signal the device to go ahead and consume the amount of current it requested.
Meeting the 100 mA maximum enumeration current limit imposed by the USB specification can be challenging given the fact that a High-Speed capable USB Physical Layer Transceiver Core (PHY) consumes a majority of the 100 mA budget, leaving little current leftover for performing the remaining functions of a USB device necessary for the enumeration process. If the USB device includes a high-performance processor, the current consumption of the processor and the USB PHY together will frequently exceed the 100 mA budget.
One conventional solution is to require an external power source for the peripheral device and therefore not rely entirely on the power received from the USB. Peripheral devices that require an external power source are known as “self-powered” devices. USB bus-power support, however, provides many attractive benefits to customers. Failure to provide this feature typically limits the success of a peripheral device.
Another conventional solution is to use a simple, low-frequency, 8-bit processor that can function with the small amount of current leftover from the PHY. A low performance processor, however, may not be able to keep up with the data throughput requirement for the device, particularly in applications where data needs to be processed (or “touched”) by the processor as it flows through the device.